As is known in the art, network coding (NC) is a technique which, ideally, can be used to achieve network capacity in multicast sessions. NC utilizes a store-code-forward paradigm to network operation in which intermediate nodes (i.e. nodes between a source node and a destination node) in a network can mix (or recode) data packets, essentially extending the set of functions assigned to intermediate nodes to include coding operations.
As is also known, linear network codes have been shown to be sufficient to achieve multicast capacity in multicast sessions. Moreover, random linear network codes (RLNC), which allow intermediate nodes to choose random coefficients to create linear combinations of incoming packets, have been shown as a simple, distributed, and asymptotically optimal approach.
NC techniques have shown significant gains (e.g. in terms of improved performance and/or energy efficiency) in a multitude of applications ranging from wireless networks and multimedia transmission, to distributed storage and peer-to-peer (P2P) networks.